import numpy as np
import matplotlib.pyplot as plt
from sklearn import neighbors
import random

X = np.array(list(range(100)))[:, np.newaxis]
y = []
for i in range(len(X)):
    y.append(20+X[i]+random.random()*60)

fig, axs = plt.subplots(2,2, figsize=(15,7))
for i,n_neighbors in zip([0,1,2,3], [2,10,18,26]):
    knn_regressor = neighbors.KNeighborsRegressor(n_neighbors)
    knn_model = knn_regressor.fit(X, y)
    y_prediction = knn_model.predict(X)
    
    axs[int(i/2),i%2].scatter(X, y, c='y')
    axs[int(i/2),i%2].plot(X, y_prediction, c='k')
    axs[int(i/2),i%2].set_title('SciKit KNeighborsRegressor, k = '+ 
                                 str(n_neighbors) )

plt.show()
